﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SanguoSharp
{
    public interface IPlayerSessionControl
    {
        /// <summary>
        /// Gets the <see cref="IPlayer"/> controlled by this <see cref="IPlayerSessionControl"/>
        /// </summary>
        IPlayer Player { get; }

        /// <summary>
        /// Gets the <see cref="ISession"/> instance representing the session.
        /// </summary>
        ISession Session { get; }

        /// <summary>
        /// Sends a chat message to the players and spectators in the session.
        /// </summary>
        /// <param name="message">
        /// The message to be sent.
        /// </param>
        void SendChatMessage(string message);

        /// <summary>
        /// Disconnects the player from the session (and also removes if the session has not yet started).
        /// </summary>
        void Disconnect();

        /// <summary>
        /// Starts a new game. Can be only called by the creator of the session.
        /// </summary>
        void StartGame();

        /// <summary>
        /// Ends the session. Can be only called by the creator of the session.
        /// </summary>
        void EndSession();
    }
}
